1. Technical Field
The present invention relates to methods of and apparatus for determining location codes on surfaces. More particularly, although not exclusively, the invention relates to improvements in generating optically detectable location codes on printed surfaces.
2. Background Art
There are a number of types of optically detectable codes which can be printed on a surface and can be used to encode digitized data of virtually any form.
Such optically detectable codes are known as glyphs or dataglyphs. A glyph is an optically detectable character or mark which carries encoded data by means of optically distinguishable characteristic such as shape.
An important application is where glyphs are used to encode the physical position of points on a surface. Glyphs used for this function are called Address Codes or Position Codes. Such codes can be read using an optical reader and decoded to determine the position of the reader on the page.
In this case, glyphs are usually positioned on the surface at the vertices of an accurately specified lattice or grid. The location data which is encoded into the glyphs represents the physical location of that particular point on the surface.
An example of position encoding glyphs is given in U.S. Pat. No. 6,548,768 to Anoto AB. According to '768, the glyph is a combination of the position of a visible dot in relation to an invisible virtual grid vertex reference point. The layout of the virtual grid is defined by the overall arrangement of the visible dots and is deduced by imaging a number of dot locations. The actual data is decoded by determining the position of the visible dot in relation to its virtual grid vertex reference point. For four dot positions around the grid vertex, four unique values can be encoded in any one grid position.
Another example of position codes is disclosed in IEEE Publication 0018-9162/10 entitled “Printed Embedded Graphical User Interfaces” by Hecht. Here, two unique glyphs are used, a‘/’ to encode a 0 and a ‘\’ to encode a 1 and are arranged on in regular array. The code is a self-clocking code which means that each glyph is encoded to represent data at each position and the actual presence of the glyph is the clocking mechanism.
Position Codes thus enable finely resolved user selection of printed objects. Thus they can be used in paper-based GUI systems which follow the traditional point-and-click paradigm.
Glyph position codes can also be used to establish the position of the reference lattice or grid either directly, as in the case of Hecht, or indirectly as disclosed in '768.
Glyphs are often designed as unitary characters where the encoding is represented by the intrinsic optical structure of the character. In the case of ‘/’ and ‘\’ this intrinsic character is the orientation of the stroke. However, a glyph can also be constituted by the geometrical relationship between an optically detectible feature and a fixed reference point as in the case of the Anoto disclosure.
Two of the major issues with optical encoding of any kind are firstly the requirement that the glyphs not unduly interfere with the appearance of the page as a whole. Secondly, reasonably high coding densities are required in order to encode useful amounts of information into a given page area. The present invention attempts to address these issues by providing a glyph position code system which is optically neutral to the observer and has improved data encoding capacity.